package org.tedu.mapper;



import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.tedu.entity.User;

import java.util.List;

public interface UserMapper {

    User findUserById(Integer id);


    List<User> findUsers(String tableName);

    int insertUser(User user);  // 什么时候可以封装对象传参？  当两个或者以上！

    int deleteUserById(Integer id);

    int updateUserById(Integer id);

    // 根据用户的id修改用户的邮箱

    /*
        arg0, arg1
        param1, param2
        @Param("指定名称")  ----  推荐
     */
    int updateEmailById(
            @Param("id") Integer id,
            @Param("email") String email);


    /*复杂sql：动态SQL
    * 根据执行时传入的参数不同，最终执行的SQL结果也不相同！
    * */

    int deleteUsersById(List<Integer> ids);

    /*
        可变参数
        1. 只能在参数列表的最后声明
        2. 声明为可变参数后，可以传入0个或者多个
        3. 参数列表中，只能出现一个可变参数的类型
            其本质就是数组！！！
     */
//    int deleteUsersById(Integer... ids);
//    int deleteUsersById(Integer[] ids);






}
